1. Field of the Invention
The present invention relates to a communication apparatus comprising means for allocating alternate designation information such as a virtual address or the like to each function unit, and a communication system comprising the above-mentioned two communication apparatuses which are communicated with each other. In particular, the present invention relates to a communication apparatus, for example, computers, peripheral equipments such as a printer or the like, various domestic digital equipments such as a digital still camera or the like, and a communication system comprising the above-mentioned two communication apparatuses which are communicated with each other via a serial bus conformed to IEEE 1394.
2. Description of the Related Art
For example, an ANSI X3.131-1986 Small Computer System Interface proposed by the ANSI (American National Standards Institute, Inc.) has been widely used thus far as an interface for carrying out data transmission between a personal computer, and peripheral equipments connected with the personal computer.
However, in so-called parallel SCSI standard of the above-mentioned interface standards, there is no rule relating to many matters such as a shape of a connector or cable, an operation of connecting equipments without power supply. As a result, problems arise in compatibility and convenience accompanying with popularization of the personal computer.
Moreover, in comparison with the time when the above-mentioned parallel SCSI standard has been proposed, recently, various domestic digital equipments are popularized. Further, a general household also requires a high speed interface which is adaptable for transmitting acoustic and image digital signal data.
Under such circumstances, some next-generation interface standards have been already proposed, and then, the IEEE 1394 interface is employed as an interface for transmitting data at a high speed between computers and peripheral equipments and between apparatuses including domestic equipments, and thus, digital equipments using the IEEE 1394 interface have been started to be merchandised.
The IEEE 1394 interface standard is proposed by IEEE (The Institute of Electrical and Electronics Engineers, Inc.), and then, is prescribed as IEEE Std. 1394-1995 IEEE Standard for a High Performance Serial Bus. More specifically, the IEEE 1394 interface standard is a very useful serial interface standard taking the use in a general household into consideration, that is, an interface conformed to the standard has a high transfer speed of several 100 Mbits/second, and supports a synchronous transfer, a hot-line insertion and drawing and a connection topology having a high degree of freedom.
For example, Japanese Patent Laid-open Publication (Kokai) No. 10-93623 discloses a technique of employing the above-mentioned IEEE 1394 interface.
As disclosed in the above publication, in the case of carrying out a digital data transmission with the use of a packet adding a destination information to a predetermined data block into which a digital data is divided, in order to improve the reliability of data transmission, when a packet transmitted from a transmitter equipment is received by a receiver equipment, the receiver equipment returns an acknowledgment signal indicative of a receiving state of the packet to the transmitter equipment of the printer apparatus 2a, and then, retransmits the packet from the transmitter equipment as the necessity arises.
Also, in the IEEE 1394 interface, there is the case where the above acknowledgment signal from the receiver equipment to the transmitter equipment is returned with respect to a request packet for request for an operation thereof.
For example, in a packet communication between a personal computer 1 and a printer apparatus 2a mutually connected the IEEE 1394 interface, as shown in FIG. 3, a request packet for requiring a predetermined operation is transmitted from the personal computer 1 to the printer apparatus 2a, and then, when the request packet is received by the printer apparatus 2a, the printer apparatus 2a returns an acknowledgment signal ACK indicative of a receiving state of the request packet to the personal computer 1.
The acknowledgment signal ACK includes information data for informing retransmission necessity and completion of reception of the printer apparatus 2a. For example, in the case where an acknowledgment signal ACK which requires retransmission is received by the personal computer 1, the same request packet is retransmitted from the personal computer 1 to the printer apparatus 2a. Then, in the case where a completion of reception is informed to the personal computer 1 by means of the above acknowledgment signal ACK, the printer apparatus 2a carries out a predetermined operation such as a print operation. Therefore, the personal computer 1 is in a waiting state until a response packet corresponding to the above request packet is transmitted from the printer apparatus 2a. 
Further, when a predetermined operation is completed in the printer apparatus 2a, a response packet including the above predetermined operation result is transmitted from the printer apparatus 2a to the personal computer 1. When the response packet is received by the personal computer 1, an acknowledgment signal ACK indicative of a retransmission request or process completion is returned from the personal computer 1 to the printer apparatus 2a. In this case, if the above acknowledgment signal ACK is indicative of a retransmission request, the same response packet is retransmitted from the printer apparatus 2a to the personal computer 1. On the other hand, if the above acknowledgment signal ACK is indicative of process completion, the printer apparatus 2a is set to an opened state for the next process.
By the way, as one of application protocols in the IEEE 1394 interface is provided an SBP-2 (Serial Bus Protocol 2). In order to explain the SBP-2, a relation between the layer structure of the IEEE 1394 interface and the SBP-2 is shown in FIG. 4, which shows the personal computer 1 and the printer apparatus 2a are connected with each other via a serial data bus 3.
The layer structure of the IEEE 1394 interface layer 100 or 200 is fundamentally comprised of three layers of a physical layer 101 or 201, a link layer 102 or 202, and a transaction layer 103 or 203 as shown in FIG. 4. The SBP-2 belongs to a transport layer 104 or 204 at a layer position higher than that of the transaction layer 103 or 203. For example, the SBP-2 has not only a function of efficiently transferring commands and data among various kinds of apparatuses or devices (referred to as nodes hereinafter) such as optical disk drive units, DVD drive units, magnetic tape drive units, scanners, digital cameras or the like, but also another function of notifying an application layer processing unit higher than the SBP-2, of operating states of commands, the results thereof, a state indicating whether or not data transfer is completed, or the like. It is to be noted that an application layer 105 or 205 is provided above the transport layer 104 or 204 of the SBP-2.
In the SBP-2, there is provided a node such as a scanner, a digital camera or the like, each having a function of not only issuing management request commands such as login for a connection request, a logout of completion of connection or the like, but also real commands such as a data read command, a data write command or the like, and this node is called an xe2x80x9cinitiatorxe2x80x9d apparatus. On the other hand, there is further provided another node such as an optical disk drive unit, a DVD drive unit, a CD-ROM drive unit, a printer, or the like, each having a function of receiving a command from the initiator apparatus and actually performing a process, and this another node is called a xe2x80x9ctargetxe2x80x9d apparatus. Communication is carried out between the initiator apparatus and the target apparatus.
With respect to the target apparatus, strictly speaking, a logical unit corresponding to an actual or real apparatus such as an optical disk drive unit, a CD-ROM drive unit, or a printer is dealt as a unit. Communication is executed between the logical unit, at least one of which is provided within the target apparatus, and the initiator apparatus.
FIG. 5 is a timing chart showing a communication sequence between the personal computer 1 of an initiator apparatus shown in FIG. 3 and a logic unit LU of the printer apparatus 2a of a target apparatus shown in FIG. 3. Further, FIG. 6 is a schematic diagram showing a data structure of a login request block in the SBP-2 of prior art, FIG. 7 is a schematic diagram showing one example of a packet format of a communication packet for use in the IEEE 1394 interface of prior art, FIG. 8 is a schematic diagram showing a data structure of a login response block in the SBP-2 shown in FIG. 6, and FIG. 9 is a schematic diagram showing a data structure of a logout request block in the SBP-2 of prior art.
A procedure of communication sequence carried out between the personal computer 1 of the initiator apparatus, and the logical unit LU of the printer apparatus 2a of the target apparatus is shown in FIG. 5.
Referring to FIG. 5, prior to transmission of all commands to the target apparatus 2, it is necessary for the initiator apparatus la to issue a login request signal to the logical unit LU of the target apparatus 2 with which communication is to be carried out. The data structure of the login request block in the SBP-2 is as shown in FIG. 6.
The data structure of the block in SBP-2 is called an ORB (Operation Request Blocks). As shown in FIG. 6, data xe2x80x9c0xe2x80x9d indicative of login is written into a xe2x80x9cfunctionxe2x80x9d field of the login request block as a kind of control block. The logical unit LU of the printer apparatus 2a of the target apparatus to which the personal computer 1 of the initiator apparatus tries to log in is designated by a xe2x80x9clunxe2x80x9d field indicative of the logical unit number.
The above-mentioned ORB is inserted into a data part of a transaction packet for use in the IEEE 1394 interface as shown in FIG. 7. The ORB is transferred by the transaction packet, and is sent from the personal computer 1 of the initiator apparatus designated by a xe2x80x9csource IDxe2x80x9d field in the header of the packet, to the printer apparatus 2a of the target apparatus designated by a xe2x80x9cdestination IDxe2x80x9d field in the header of the packet.
When the login request packet from the personal computer 1 of the initiator apparatus is received by the printer apparatus 2a of the target apparatus, it is actually received and accepted by a mechanism or manager processing unit called a xe2x80x9cmanager agentxe2x80x9d, which processes a management block in the logical unit LU designated by the xe2x80x9clunxe2x80x9d field stored in the printer apparatus 2a of the target apparatus. Information regarding the base address of a resister of the manager agent, which is called a xe2x80x9cCSRxe2x80x9d (Control and Status Register), is previously stored in a configuration ROM of the printer apparatus 2a of the target apparatus. By referring to the configuration ROM, the login request packet is allowed to be received and accepted by the manager agent.
It is judged by the manager agent whether or not it is set to such a status of permitting a login or capable of communicating in accordance with a login request signal. When it is set to the status of permitting a login, a login response signal corresponding to the login request packet is returned from the printer apparatus 2a of the target apparatus to the personal computer 1 of the initiator apparatus. The data structure of the login response block is as shown in FIG. 8.
As shown in FIG. 8, the xe2x80x9clogin responsexe2x80x9d block includes the followings:
(a) a xe2x80x9clogin IDxe2x80x9d field for identifying a login; and
(b) a xe2x80x9ccommand block agentxe2x80x9d field for describing the base address of the CSR of a mechanism or a processing unit called a xe2x80x9cfetch agentxe2x80x9d, which accepts a command request signal issued by the personal computer 1 of the initiator apparatus to the printer apparatus 2a of the target apparatus, and which performs a process of a function in the printer apparatus 2a of the target apparatus.
In a manner different from that of the manager agent, a relative address in the register or the like is predetermined for the fetch agent, however, the base address itself is allocated to some position in the resister space assured in the address space in the IEEE 1394 interface every login. The base address is necessary for the personal computer 1 of the initiator apparatus to allow the fetch agent to execute a command.
When the login is succeeded in such a manner, in the personal computer 1 of the initiator apparatus, the base address of the CSR of the fetch agent designated in the login response packet is referred to, and then, a request signal to execute a command such as a write command, a read command, or a lock command is transmitted from the personal computer 1 of the initiator apparatus to the printer apparatus 2a of the target apparatus by using the base address.
In the printer apparatus 2a of the target apparatus, a login identifier including a logical unit number lun, a login owner ID (or a source ID), . . . , and a login ID is held or stored. When the command execution request signal is received by the printer apparatus 2a of the target apparatus, the login ID corresponding to the source ID is referred to from the login identifier, the fetch agent is selected by using the base address corresponding to the login ID, and then, the command is executed. When the process of the command is completed, the result is notified to the personal computer 1 of the initiator apparatus by using the status block of the packet.
When the necessary commands have been executed in the printer apparatus 2a of the target apparatus in accordance with the above-mentioned procedure, the personal computer 1 of the initiator apparatus issues a logout request signal to the printer apparatus 2a of the target apparatus. The data structure of the logout request block is as shown in FIG. 9.
As shown in FIG. 9, the logout request block includes a xe2x80x9clogin IDxe2x80x9d field in which the login ID used for the communication is described or written in. Further, xe2x80x9c7xe2x80x9d indicative of logout is described in the xe2x80x9cfunctionxe2x80x9d field.
When the logout request packet is received by the printer apparatus 2a of the target apparatus, it is accepted by the manager agent in the printer apparatus 2a of the target apparatus. The base address of the fetch agent used until then is set so as to be reused on the basis of the login ID. When the logout process is finished, a notification of completion is sent to the personal computer 1 of the initiator apparatus by using the status block. By the operation, the communication is finished and the designated logical unit in the printer apparatus 2a of the target apparatus is released.
In the above-mentioned communication system using the IEEE 1394 and SBP-2, when a logical unit of a target apparatus to which a login request signal is sent from an initiator apparatus has already been logged in by another initiator apparatus, a new login request signal from,the initiator apparatus is refused.
Even when the logical unit has sufficient resources and a fetch agent other than the fetch agent used by the other initiator apparatus can execute a process, the initiator apparatus which newly issues the login request signal cannot perform communication with the logical unit until the other initiator apparatus which has already logged in logs out.
In order to solve such problems of the prior art, it is an essential object of the invention to provide a communication apparatus and a communication system comprising the two communication apparatuses which includes first and second communication apparatuses, in which in the case where the first communication apparatus capable of executing a predetermined process already permits any of one or more second communication apparatus connected to the first communication apparatus to carry out communication, when a communication start is requested by another second communication apparatus which is different from the second communication apparatus which has already been permitted to perform communication, response information including the same designation information as that included in response information returned to the second communication apparatus which has already been permitted to perform communication is returned to another second communication apparatus to thereby permit another second communication apparatus to perform communication.
In order to achieve the aforementioned objective, according to one aspect of the present invention, there is provided a communication apparatus for communicating with a plurality of further communication apparatuses which are connected with the communication apparatus, and for allowing one of a plurality of function units to execute a predetermined process in accordance with a request signal from a further apparatus, comprising:
manager unit for determining designation information for designating one of the plurality of function units in accordance with a request signal for start of communication from a further communication apparatus when the communication apparatus does not communicate with any further communication apparatuses, and returning response information including the determined designation information to the further communication apparatus so as to allow the further communication apparatus to communicate with the communication apparatus,
wherein the manager unit further comprises allocating means for storing the determined designation information in a memory means, and for allocating virtual alternate designation information in stead of the designation information to the one of the plurality of function units, in correspondence with one of the further communication apparatuses which has sent the request signal for start of communication, and
wherein, in the case where one of the further communication apparatuses is permitted to communicate with the communication apparatus, when a request signal of start of communication is sent from another one of the further communication apparatuses different from the one of the further communication apparatuses which has been already permitted to communicate with the communication apparatus, the allocating means returns response information including the designation information stored in the memory means to another one of the further communication apparatuses so as to permit another one of the further communication apparatuses to communicate with the communication apparatus, and then, allocates to another one of the further communication apparatuses virtual alternate designation information, which is different from the virtual alternate designation information allocated to the one of the further communication apparatuses which has been already permitted to communicate with the communication apparatus.
In the above-mentioned communication apparatus, in accordance with a request signal for executing the predetermined process by using the designation information from the one of the further communication apparatuses which has been already permitted to communicate with the communication apparatus, the allocating means preferably selects one of the plurality of function units corresponding to the one of further communication apparatuses, among the plurality of function units, with reference to the virtual alternate designation information stored in the memory means.
In the above-mentioned communication apparatus, preferably, the communication apparatus is connected to the further communication apparatuses via an interface conformed to an IEEE 1394 standard, and an SBP-2 (Serial Bus Protocol 2) is used as an application protocol in the interface.
According to another aspect of the present invention, there is provided a communication system comprising:
a first communication apparatus comprising a plurality of function units, each of which execute a predetermined process; and
a plurality of second communication apparatuses, each of which are communicated with the first communication apparatus,
wherein the first communication apparatus comprises manager unit for determining designation information for designating one of the plurality of function units in accordance with a request signal for start of communication from one of the second communication apparatuses when the first communication apparatus does not communicate with any one of second communication apparatuses, and returning response information including the determined designation information to the one of second communication apparatuses so as to allow the one of second communication apparatuses to communicate with the first communication apparatus,
wherein the manager unit further comprises allocating means for storing the determined designation information in a memory means, and for allocating virtual alternate designation information in stead of the designation information to the one of the plurality of function units, in correspondence with the one of the second communication apparatuses which has sent the request signal for start of communication, and
wherein, in the case where one of the second communication apparatuses is permitted to communicate with the first communication apparatus, when a request signal of start of communication is sent from another one of the second communication apparatuses different from the one of the second communication apparatuses which has been already permitted to communicate with the first communication apparatus, the allocating means returns response information including the designation information stored in the memory means to another one of the second communication apparatuses so as to permit another one of the second communication apparatuses to communicate with the first communication apparatus, and then, allocates to another one of the second communication apparatuses virtual alternate designation information, which is different from the virtual alternate designation information allocated to the one of the second communication apparatuses which has been already permitted to communicate with the first communication apparatus.
In the above-mentioned communication system, in accordance with a request signal for executing the predetermined process by using the designation information from the one of the second communication apparatuses which has been already permitted to communicate with the first communication apparatus, the allocating means preferably selects one of the plurality of function units corresponding to the one of second communication apparatuses, among the plurality of function units, with reference to the virtual alternate designation information stored in the memory means.
In the above-mentioned communication system, preferably, the first communication apparatus is connected to the second communication apparatuses via an interface conformed to an IEEE 1394 standard, and an SBP-2 (Serial Bus Protocol 2) is used as an application protocol in the interface.